package com.yzs.base.base

import android.view.LayoutInflater
import androidx.lifecycle.ViewModel
import androidx.viewbinding.ViewBinding
import kotlin.reflect.KClass


/**
 *    author : yzs
 *    date   : 2022/1/1316:04
 *    desc   : base 层提供便捷使用 viewBinding、viewModel
 *    子类不重写 initViewModel(), 重写 observe() 在该方法中对 vm 进行监听和调用
 */
abstract class BaseVBVMActivity<VB : ViewBinding, VM : ViewModel>(
    inflate: (LayoutInflater) -> VB,
    private val clazz: KClass<VM>
) : BaseVBActivity<VB>(inflate) {
    lateinit var vm: VM

    override fun initViewModel() {
        vm = getActivityViewModel(clazz.java)
    }
}